home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / utils / catch.zoo / catch.doc next >
Text File  |  1990-03-25  |  4KB  |  76 lines

  1.         CATCH - A Master Module for Signal handling
  2.  
  3. The program catch.mmx is intended as a Master-Module-eXtension to install a
  4. signal-handler for all programs. It hooks itself into the keyboard-interrupt
  5. vector of the atari st. If you press ^Z not preceeded by ^V then the current
  6. program is stopped. The shell is called with system("-i"). If you press ^C,
  7. the program is terminated with return value -32, but you are asked for
  8. confirmation. A timeout can also be installed.
  9.  
  10. The program can work in one of three ways:
  11.     1) it installs the handler and returns to the shell with system("-i")
  12.        when you exit the recursive shell, the handler is deinstalled
  13.     2) it installs itself as a resident program with a cookie at 0x5A0
  14.        (this can be done from the AUTO folder at system startup time if you
  15.        rename it to catch.prg) and can be called from any application
  16.     3) the program can be started again to configure an already installed
  17.        version of itself
  18. If at any time the program is started with Master's module command, a new
  19. command is added to Master's builtin commands. This new command is CATCH and
  20. calls the routine recorded in the module_header pointed to by the cookie CTCH.
  21.  
  22.  
  23.     What can you do with the "catch"-command ?
  24.  
  25. The following subcommands are available:
  26.     help    lists a short summary
  27.     <num>    installs a timeout in <num> seconds; the program running at
  28.         that moment will be terminated immediately if its basepage is
  29.         in higher memory than the reference-basepage (that's the
  30.         address of the father of the first catch.mmx by default) and
  31.         the routine at _shell_p (0x4F6).
  32.     <sc>    use <sc> as the new stop character (default is ^Z); the
  33.         character can be entered with eg. ^V^Z in Master; if you give
  34.         '^' followed by 'Z' then '^' is the stop-char and 'Z' is used
  35.         to mask it (see next subcommand)
  36.     <sc><mc>    like above plus set <mc> as new mask-char (default ^V)
  37.     -    switch off stop-char and set timeout to zero (disable it)
  38.     +    switch on stop-char and timeout
  39.     +.    install actual basepage as reference-basepage
  40.     +..    install father of current basepage as reference
  41. If catch has no parameter, then only the timeout is disabled (but not reset to
  42. zero) and any pending signals are flushed.
  43.  
  44.  
  45.     How can you use the "catch"-commands ?
  46.  
  47. First you can call the catch.mmx program and give it the command as parameter
  48. to the -c option. For example "catch.mmx -c help" will print a help-message.
  49. A better way is to install it as Master-Module. Then you can give the commands
  50. as parameter to the "catch"-command like "catch help" without starting a new
  51. version of the program.
  52.  
  53.     Options for the catch.mmx program
  54.  
  55. There are some options which can be given if the program is started. If you
  56. give it an invalid option, the possible choices are displayed. As mentioned
  57. above you can start the program either as "catch.mmx" or as "module catch".
  58. You can also give a first command to be executed (default "help" if installed
  59. resident, "" else) as parameter to the program. So to install a timeout in
  60. 20 seconds, you could use "catch.mmx 20".
  61. ---
  62. I hope this program will be useful for anybody working with a shell that allows
  63. system calls to get an interactive shell.
  64.  
  65.     - Edgar
  66.  
  67. ---
  68. This program has been written with the GNU-C Compiler V1.35 on the Atari ST
  69. and is hereby put in the public domain under the conditions of the GNU general
  70. public license. Source code can be obtained from:
  71.  
  72.     Edgar Roeder        | roeder@cs.uni-sb.de
  73.     Liesbet-Dill-Strasse 3    | roeder@eansb.informatik.uni-saarland.dbp.de
  74.     D-6602 Dudweiler    |
  75.     W-Germany        |
  76.